Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove condition/c_if, duration, and unit from instructions #13506

Open
wants to merge 41 commits into
base: main
Choose a base branch
from

Conversation

mtreinish
Copy link
Member

@mtreinish mtreinish commented Dec 1, 2024

Summary

This commit removes the per instruction attributes for condition, duration, and unit. These attributes were deprecated in 1.3.0. Besides the label these attributes were the only mutable state for singleton instructions and removing them simplifies what needs to be tracked for instructions in both Python and rust. The associated methods and classes that were previously dependent on these attributes are also removed as they no longer serve a purpose. The removal of condition in particular removes a lot of logic from Qiskit especially from the transpiler because it was a something that needed to be checked outside of the normal data model for every operation.

This PR simplifies the representation of this extra mutable state in Rust by removing the ExtraInstructionAttributes struct and replacing it with a Option<Box<String>>. The Option<Box<String>> is used instead of the simpler Option<String> because this this reduces the size of the label field from 24 bytes for Option<String> to 8 bytes for Option<Box<String>> with an extra layer of pointer indirection and a second heap allocation. This will have runtime overhead when labels are set, but because the vast majority of operations don't set labels the tradeoff for optimizing for the None case makes more sense. Another option would have been to use Box<str> here which is the equivalent of Box<[u8]> (where String is the equivalent to Vec<u8>) and from a runtime memory tradeoff would be a better choice for this application if labels were commonly used as labels aren't growable. But that requires 16 bytes instead of 8 and we'd be wasting an additional 8 bytes for each instruction in the circuit which isn't worth the cost.

Details and comments

TODO:

  • Fix scheduling pass updates
  • Remove remaining c_if usage in tests (there's >200 instances of it still)
  • Fix any failing tests not caused by the above 2 (hard to see with ~300-400 failures)
  • Finish writing release notes
  • Do some tuning/profiling to see if we can optimize things a bit more after the removal

@mtreinish mtreinish added on hold Can not fix yet Changelog: API Change Include in the "Changed" section of the changelog Changelog: Removal Include in the Removed section of the changelog Rust This PR or issue is related to Rust code in the repository mod: transpiler Issues and PRs related to Transpiler mod: circuit Related to the core of the `QuantumCircuit` class or the circuit library labels Dec 1, 2024
@mtreinish mtreinish added this to the 2.0.0 milestone Dec 1, 2024
This commit removes the per instruction attributes for condition,
duration, and unit. These attributes were deprecated in 1.3.0. Besides
the label these attributes were the only mutable state for singleton
instructions and removing them simplifies what needs to be tracked for
instructions in both Python and rust. The associated methods and classes
that were previously dependent on these attributes are also removed as
they no longer serve a purpose. The removal of condition in particular
removes a lot of logic from Qiskit especially from the transpiler
because it was a something that needed to be checked outside of the
normal data model for every operation.

This PR simplifies the representation of this extra mutable state in
Rust by removing the `ExtraInstructionAttributes` struct and replacing
it with a `Option<Box<String>>`. The `Option<Box<String>>` is used
instead of the simpler `Option<String>` because this this reduces the
size of the label field from 24 bytes for `Option<String>` to 8 bytes
for `Option<Box<String>>` with an extra layer of pointer indirection
and a second heap allocation. This will have runtime overhead when
labels are set, but because the vast majority of operations don't set
labels the tradeoff for optimizing for the None case makes more sense.
Another option would have been to use `Box<str>` here which is the
equivalent of `Box<[u8]>` (where `String` is the equivalent to
`Vec<u8>`) and from a runtime memory tradeoff would be a better
choice for this application if labels were commonly used as labels
aren't growable. But that requires 16 bytes instead of 8 and we'd be
wasting an additional 8 bytes for each instruction in the circuit which
isn't worth the cost.
@nonhermitian
Copy link
Contributor

Is there a replacement method for getting circuit timing if duration is removed? It is somewhat critical to have a way to determine circuit timing for a variety of reasons.

@mtreinish
Copy link
Member Author

Aside from the failing tests in test.python.circuit.test_control_flow_builders.TestControlFlowBuilders (which I'll need a little more time to fix) everything on the Qiskit side should be working now. Although there are more failures reported here, those are coming form aer's usage of the deprecated functionality. I pushed up a PR to aer to fix that here: Qiskit/qiskit-aer#2301 we'll need that released or start building aer from source in CI to unblock this.

jakelishman pushed a commit to Qiskit/qiskit-aer that referenced this pull request Jan 25, 2025
…#2301)

* Adjust QuantumError.to_dict() to handle lack of Instruction.condition

In Qiskit 2.0 the Instruction.condition attribute will be removed
following it's deprecation in 1.3.0. This attribute has been superseded
by the IfElseOp which covers the use case but offers more functionality.
The removal is pending in Qiskit/qiskit#13506 and the use of qiskit-aer
in Qiskit's tests is blocking progress on that PR. This commit makes the
usage of .condition optional to maintain compatibility with Qiskit<2.0
but also work in >=2.0 with the attribute removed.

* Handle condition for AerJump as a custom attribute

With the removal of .condition from the base instruction data model the
.c_if() method was also removed. To handle the conditional jump that
AerJump was used for a custom attribute .condition is added to the
instruction. This enables retaining the functionality, but doesn't rely
on the base data model to provide the attribute or method.
mtreinish added a commit to mtreinish/qiskit-core that referenced this pull request Jan 25, 2025
In Qiskit#13506 the QPY backwards compatibility tests are failing because the
image is running out of disk space and github actions is killing the
runner. The qpy files themselves should be fairly small and will be
dwarfed by the virtual environments created to install old versions of
qiskit to generate old QPY payloads. We use GNU parallel to speed up the
testing, however by doing this we end up having multiple venvs at once
which increases the disk space usage. This commit attempts to reduce the
pressure on the disk space usage by decreasing the parallelism from N
cpus (which is currently 4 for linux runners according to [1]) to 2.
This will increase the runtime for this job but if we have insufficient
disk space on the image to generate new qpy files there isn't really
a choice.

[1] https://docs.github.com/en/actions/using-github-hosted-runners/using-github-hosted-runners/about-github-hosted-runners#standard-github-hosted-runners-for-public-repositories
github-merge-queue bot pushed a commit that referenced this pull request Jan 27, 2025
In #13506 the QPY backwards compatibility tests are failing because the
image is running out of disk space and github actions is killing the
runner. The qpy files themselves should be fairly small and will be
dwarfed by the virtual environments created to install old versions of
qiskit to generate old QPY payloads. We use GNU parallel to speed up the
testing, however by doing this we end up having multiple venvs at once
which increases the disk space usage. This commit attempts to reduce the
pressure on the disk space usage by decreasing the parallelism from N
cpus (which is currently 4 for linux runners according to [1]) to 2.
This will increase the runtime for this job but if we have insufficient
disk space on the image to generate new qpy files there isn't really
a choice.

[1] https://docs.github.com/en/actions/using-github-hosted-runners/using-github-hosted-runners/about-github-hosted-runners#standard-github-hosted-runners-for-public-repositories
mergify bot pushed a commit that referenced this pull request Jan 27, 2025
In #13506 the QPY backwards compatibility tests are failing because the
image is running out of disk space and github actions is killing the
runner. The qpy files themselves should be fairly small and will be
dwarfed by the virtual environments created to install old versions of
qiskit to generate old QPY payloads. We use GNU parallel to speed up the
testing, however by doing this we end up having multiple venvs at once
which increases the disk space usage. This commit attempts to reduce the
pressure on the disk space usage by decreasing the parallelism from N
cpus (which is currently 4 for linux runners according to [1]) to 2.
This will increase the runtime for this job but if we have insufficient
disk space on the image to generate new qpy files there isn't really
a choice.

[1] https://docs.github.com/en/actions/using-github-hosted-runners/using-github-hosted-runners/about-github-hosted-runners#standard-github-hosted-runners-for-public-repositories

(cherry picked from commit b718f06)
github-merge-queue bot pushed a commit that referenced this pull request Jan 27, 2025
In #13506 the QPY backwards compatibility tests are failing because the
image is running out of disk space and github actions is killing the
runner. The qpy files themselves should be fairly small and will be
dwarfed by the virtual environments created to install old versions of
qiskit to generate old QPY payloads. We use GNU parallel to speed up the
testing, however by doing this we end up having multiple venvs at once
which increases the disk space usage. This commit attempts to reduce the
pressure on the disk space usage by decreasing the parallelism from N
cpus (which is currently 4 for linux runners according to [1]) to 2.
This will increase the runtime for this job but if we have insufficient
disk space on the image to generate new qpy files there isn't really
a choice.

[1] https://docs.github.com/en/actions/using-github-hosted-runners/using-github-hosted-runners/about-github-hosted-runners#standard-github-hosted-runners-for-public-repositories

(cherry picked from commit b718f06)

Co-authored-by: Matthew Treinish <[email protected]>
@mtreinish
Copy link
Member Author

I ran a quick asv run to see if there was a performance impact to this change, and it does speed things up by about 10%:

Benchmarks that have improved:

| Change   | Before [86f203d0] <drop-instruction-dead-weight~12^2>   | After [7b4fd309] <drop-instruction-dead-weight>   |   Ratio | Benchmark (Parameter)                                                         |
|----------|---------------------------------------------------------|---------------------------------------------------|---------|-------------------------------------------------------------------------------|
| -        | 9.83±0.1ms                                              | 8.85±0.1ms                                        |    0.9  | utility_scale.UtilityScaleBenchmarks.time_parse_qaoa_n100('ecr')              |
| -        | 9.86±0.09ms                                             | 8.78±0.1ms                                        |    0.89 | utility_scale.UtilityScaleBenchmarks.time_parse_qaoa_n100('cz')               |
| -        | 104±2ms                                                 | 93.0±0.6ms                                        |    0.89 | utility_scale.UtilityScaleBenchmarks.time_parse_qft_n100('cx')                |
| -        | 105±1ms                                                 | 92.8±1ms                                          |    0.89 | utility_scale.UtilityScaleBenchmarks.time_parse_qft_n100('cz')                |
| -        | 104±2ms                                                 | 92.7±0.9ms                                        |    0.89 | utility_scale.UtilityScaleBenchmarks.time_parse_qft_n100('ecr')               |
| -        | 33.9±0.4ms                                              | 30.0±0.2ms                                        |    0.88 | utility_scale.UtilityScaleBenchmarks.time_parse_square_heisenberg_n100('cx')  |
| -        | 33.7±0.5ms                                              | 29.7±0.3ms                                        |    0.88 | utility_scale.UtilityScaleBenchmarks.time_parse_square_heisenberg_n100('ecr') |
| -        | 34.0±0.1ms                                              | 29.6±0.2ms                                        |    0.87 | utility_scale.UtilityScaleBenchmarks.time_parse_square_heisenberg_n100('cz')  |

Benchmarks that have stayed the same:

| Change   | Before [86f203d0] <drop-instruction-dead-weight~12^2>   | After [7b4fd309] <drop-instruction-dead-weight>   | Ratio   | Benchmark (Parameter)                                                                                  |
|----------|---------------------------------------------------------|---------------------------------------------------|---------|--------------------------------------------------------------------------------------------------------|
|          | 0                                                       | 0                                                 | n/a     | utility_scale.UtilityScaleBenchmarks.track_bvlike_depth('cx')                                          |
|          | 0                                                       | 0                                                 | n/a     | utility_scale.UtilityScaleBenchmarks.track_bvlike_depth('cz')                                          |
|          | 0                                                       | 0                                                 | n/a     | utility_scale.UtilityScaleBenchmarks.track_bvlike_depth('ecr')                                         |
|          | 10.4±0.04ms                                             | 10.9±0.1ms                                        | 1.04    | utility_scale.UtilityScaleBenchmarks.time_bvlike('cx')                                                 |
|          | 10.4±0.06ms                                             | 10.8±0.06ms                                       | 1.04    | utility_scale.UtilityScaleBenchmarks.time_bvlike('cz')                                                 |
|          | 115±1ms                                                 | 119±1ms                                           | 1.03    | transpiler_levels.TranspilerLevelBenchmarks.time_quantum_volume_transpile_50_x_20(1)                   |
|          | 19.2±0.2ms                                              | 19.6±0.4ms                                        | 1.02    | transpiler_levels.TranspilerLevelBenchmarks.time_transpile_from_large_qasm_backend_with_prop(2)        |
|          | 20.0±0.1ms                                              | 20.5±0.3ms                                        | 1.02    | transpiler_levels.TranspilerLevelBenchmarks.time_transpile_from_large_qasm_backend_with_prop(3)        |
|          | 18.1±0.1ms                                              | 18.3±0.2ms                                        | 1.01    | transpiler_levels.TranspilerLevelBenchmarks.time_transpile_from_large_qasm(2)                          |
|          | 37.4±0.3ms                                              | 37.7±0.3ms                                        | 1.01    | transpiler_levels.TranspilerLevelBenchmarks.time_transpile_from_large_qasm_backend_with_prop(1)        |
|          | 122±1ms                                                 | 123±0.6ms                                         | 1.01    | utility_scale.UtilityScaleBenchmarks.time_bv_100('cx')                                                 |
|          | 127±0.8ms                                               | 127±0.7ms                                         | 1.01    | utility_scale.UtilityScaleBenchmarks.time_bv_100('cz')                                                 |
|          | 126±0.6ms                                               | 127±0.5ms                                         | 1.01    | utility_scale.UtilityScaleBenchmarks.time_bv_100('ecr')                                                |
|          | 90.0±0.3ms                                              | 90.4±0.9ms                                        | 1.00    | transpiler_levels.TranspilerLevelBenchmarks.time_quantum_volume_transpile_50_x_20(0)                   |
|          | 181±0.9ms                                               | 181±2ms                                           | 1.00    | transpiler_levels.TranspilerLevelBenchmarks.time_quantum_volume_transpile_50_x_20(2)                   |
|          | 31.3±0.5ms                                              | 31.4±0.3ms                                        | 1.00    | transpiler_levels.TranspilerLevelBenchmarks.time_transpile_from_large_qasm(0)                          |
|          | 19.5±0.4ms                                              | 19.6±0.2ms                                        | 1.00    | transpiler_levels.TranspilerLevelBenchmarks.time_transpile_from_large_qasm(3)                          |
|          | 19.5±0.2ms                                              | 19.6±0.2ms                                        | 1.00    | transpiler_levels.TranspilerLevelBenchmarks.time_transpile_qv_14_x_14(0)                               |
|          | 34.7±0.4ms                                              | 34.6±0.3ms                                        | 1.00    | transpiler_levels.TranspilerLevelBenchmarks.time_transpile_qv_14_x_14(2)                               |
|          | 1404                                                    | 1404                                              | 1.00    | transpiler_levels.TranspilerLevelBenchmarks.track_depth_quantum_volume_transpile_50_x_20(0)            |
|          | 1403                                                    | 1403                                              | 1.00    | transpiler_levels.TranspilerLevelBenchmarks.track_depth_quantum_volume_transpile_50_x_20(1)            |
|          | 1323                                                    | 1323                                              | 1.00    | transpiler_levels.TranspilerLevelBenchmarks.track_depth_quantum_volume_transpile_50_x_20(2)            |
|          | 1296                                                    | 1296                                              | 1.00    | transpiler_levels.TranspilerLevelBenchmarks.track_depth_quantum_volume_transpile_50_x_20(3)            |
|          | 2705                                                    | 2705                                              | 1.00    | transpiler_levels.TranspilerLevelBenchmarks.track_depth_transpile_from_large_qasm(0)                   |
|          | 2005                                                    | 2005                                              | 1.00    | transpiler_levels.TranspilerLevelBenchmarks.track_depth_transpile_from_large_qasm(1)                   |
|          | 7                                                       | 7                                                 | 1.00    | transpiler_levels.TranspilerLevelBenchmarks.track_depth_transpile_from_large_qasm(2)                   |
|          | 7                                                       | 7                                                 | 1.00    | transpiler_levels.TranspilerLevelBenchmarks.track_depth_transpile_from_large_qasm(3)                   |
|          | 2705                                                    | 2705                                              | 1.00    | transpiler_levels.TranspilerLevelBenchmarks.track_depth_transpile_from_large_qasm_backend_with_prop(0) |
|          | 2005                                                    | 2005                                              | 1.00    | transpiler_levels.TranspilerLevelBenchmarks.track_depth_transpile_from_large_qasm_backend_with_prop(1) |
|          | 7                                                       | 7                                                 | 1.00    | transpiler_levels.TranspilerLevelBenchmarks.track_depth_transpile_from_large_qasm_backend_with_prop(2) |
|          | 7                                                       | 7                                                 | 1.00    | transpiler_levels.TranspilerLevelBenchmarks.track_depth_transpile_from_large_qasm_backend_with_prop(3) |
|          | 465                                                     | 465                                               | 1.00    | transpiler_levels.TranspilerLevelBenchmarks.track_depth_transpile_qv_14_x_14(0)                        |
|          | 336                                                     | 336                                               | 1.00    | transpiler_levels.TranspilerLevelBenchmarks.track_depth_transpile_qv_14_x_14(1)                        |
|          | 327                                                     | 327                                               | 1.00    | transpiler_levels.TranspilerLevelBenchmarks.track_depth_transpile_qv_14_x_14(2)                        |
|          | 272                                                     | 272                                               | 1.00    | transpiler_levels.TranspilerLevelBenchmarks.track_depth_transpile_qv_14_x_14(3)                        |
|          | 820±2ms                                                 | 818±9ms                                           | 1.00    | utility_scale.UtilityScaleBenchmarks.time_qv('cz')                                                     |
|          | 133±1ms                                                 | 133±1ms                                           | 1.00    | utility_scale.UtilityScaleBenchmarks.time_square_heisenberg('cx')                                      |
|          | 390                                                     | 390                                               | 1.00    | utility_scale.UtilityScaleBenchmarks.track_bv_100_depth('cx')                                          |
|          | 397                                                     | 397                                               | 1.00    | utility_scale.UtilityScaleBenchmarks.track_bv_100_depth('cz')                                          |
|          | 397                                                     | 397                                               | 1.00    | utility_scale.UtilityScaleBenchmarks.track_bv_100_depth('ecr')                                         |
|          | 300                                                     | 300                                               | 1.00    | utility_scale.UtilityScaleBenchmarks.track_circSU2_depth('cx')                                         |
|          | 300                                                     | 300                                               | 1.00    | utility_scale.UtilityScaleBenchmarks.track_circSU2_depth('cz')                                         |
|          | 300                                                     | 300                                               | 1.00    | utility_scale.UtilityScaleBenchmarks.track_circSU2_depth('ecr')                                        |
|          | 1607                                                    | 1607                                              | 1.00    | utility_scale.UtilityScaleBenchmarks.track_qaoa_depth('cx')                                            |
|          | 1622                                                    | 1622                                              | 1.00    | utility_scale.UtilityScaleBenchmarks.track_qaoa_depth('cz')                                            |
|          | 1622                                                    | 1622                                              | 1.00    | utility_scale.UtilityScaleBenchmarks.track_qaoa_depth('ecr')                                           |
|          | 1954                                                    | 1954                                              | 1.00    | utility_scale.UtilityScaleBenchmarks.track_qft_depth('cx')                                             |
|          | 1954                                                    | 1954                                              | 1.00    | utility_scale.UtilityScaleBenchmarks.track_qft_depth('cz')                                             |
|          | 1954                                                    | 1954                                              | 1.00    | utility_scale.UtilityScaleBenchmarks.track_qft_depth('ecr')                                            |
|          | 2709                                                    | 2709                                              | 1.00    | utility_scale.UtilityScaleBenchmarks.track_qv_depth('cx')                                              |
|          | 2709                                                    | 2709                                              | 1.00    | utility_scale.UtilityScaleBenchmarks.track_qv_depth('cz')                                              |
|          | 2709                                                    | 2709                                              | 1.00    | utility_scale.UtilityScaleBenchmarks.track_qv_depth('ecr')                                             |
|          | 462                                                     | 462                                               | 1.00    | utility_scale.UtilityScaleBenchmarks.track_square_heisenberg_depth('cx')                               |
|          | 462                                                     | 462                                               | 1.00    | utility_scale.UtilityScaleBenchmarks.track_square_heisenberg_depth('cz')                               |
|          | 462                                                     | 462                                               | 1.00    | utility_scale.UtilityScaleBenchmarks.track_square_heisenberg_depth('ecr')                              |
|          | 36.3±0.4ms                                              | 35.8±0.3ms                                        | 0.99    | transpiler_levels.TranspilerLevelBenchmarks.time_transpile_from_large_qasm(1)                          |
|          | 33.2±0.3ms                                              | 32.8±0.2ms                                        | 0.99    | transpiler_levels.TranspilerLevelBenchmarks.time_transpile_from_large_qasm_backend_with_prop(0)        |
|          | 57.7±0.4ms                                              | 57.0±0.6ms                                        | 0.99    | transpiler_levels.TranspilerLevelBenchmarks.time_transpile_qv_14_x_14(3)                               |
|          | 863±20ms                                                | 855±20ms                                          | 0.99    | utility_scale.UtilityScaleBenchmarks.time_circSU2('ecr')                                               |
|          | 271±2ms                                                 | 267±1ms                                           | 0.99    | utility_scale.UtilityScaleBenchmarks.time_qaoa('cx')                                                   |
|          | 356±2ms                                                 | 352±2ms                                           | 0.99    | utility_scale.UtilityScaleBenchmarks.time_qaoa('cz')                                                   |
|          | 336±3ms                                                 | 334±2ms                                           | 0.99    | utility_scale.UtilityScaleBenchmarks.time_qaoa('ecr')                                                  |
|          | 639±3ms                                                 | 629±3ms                                           | 0.99    | utility_scale.UtilityScaleBenchmarks.time_qft('cz')                                                    |
|          | 650±3ms                                                 | 646±3ms                                           | 0.99    | utility_scale.UtilityScaleBenchmarks.time_qft('ecr')                                                   |
|          | 690±8ms                                                 | 682±5ms                                           | 0.99    | utility_scale.UtilityScaleBenchmarks.time_qv('cx')                                                     |
|          | 809±8ms                                                 | 800±10ms                                          | 0.99    | utility_scale.UtilityScaleBenchmarks.time_qv('ecr')                                                    |
|          | 152±1ms                                                 | 150±2ms                                           | 0.99    | utility_scale.UtilityScaleBenchmarks.time_square_heisenberg('cz')                                      |
|          | 150±1ms                                                 | 149±0.9ms                                         | 0.99    | utility_scale.UtilityScaleBenchmarks.time_square_heisenberg('ecr')                                     |
|          | 26.2±0.2ms                                              | 25.7±0.2ms                                        | 0.98    | transpiler_levels.TranspilerLevelBenchmarks.time_transpile_qv_14_x_14(1)                               |
|          | 862±10ms                                                | 847±20ms                                          | 0.98    | utility_scale.UtilityScaleBenchmarks.time_circSU2('cx')                                                |
|          | 510±5ms                                                 | 500±3ms                                           | 0.98    | utility_scale.UtilityScaleBenchmarks.time_qft('cx')                                                    |
|          | 391±2ms                                                 | 380±2ms                                           | 0.97    | transpiler_levels.TranspilerLevelBenchmarks.time_quantum_volume_transpile_50_x_20(3)                   |
|          | 10.8±0.04ms                                             | 10.5±0.09ms                                       | 0.97    | utility_scale.UtilityScaleBenchmarks.time_bvlike('ecr')                                                |
|          | 874±20ms                                                | 852±20ms                                          | 0.97    | utility_scale.UtilityScaleBenchmarks.time_circSU2('cz')                                                |
|          | 68.7±0.3ms                                              | 63.6±0.3ms                                        | 0.93    | transpiler_levels.TranspilerLevelBenchmarks.time_schedule_qv_14_x_14(0)                                |
|          | 69.5±0.4ms                                              | 64.5±0.3ms                                        | 0.93    | transpiler_levels.TranspilerLevelBenchmarks.time_schedule_qv_14_x_14(1)                                |
|          | 9.79±0.1ms                                              | 8.90±0.05ms                                       | 0.91    | utility_scale.UtilityScaleBenchmarks.time_parse_qaoa_n100('cx')                                        |

SOME BENCHMARKS HAVE CHANGED SIGNIFICANTLY.
PERFORMANCE INCREASED.

@mtreinish mtreinish changed the title [WIP] Remove condition/c_if, duration, and unit from instructions Remove condition/c_if, duration, and unit from instructions Jan 28, 2025
@mtreinish mtreinish marked this pull request as ready for review January 28, 2025 22:12
@qiskit-bot
Copy link
Collaborator

One or more of the following people are relevant to this code:

  • @enavarro51
  • @Cryoris
  • @Qiskit/terra-core
  • @ajavadia
  • @levbishop
  • @mtreinish
  • @nkanazawa1989
  • @t-imamichi

The tests fail because of a circuit equality issue, form experience it's
differing bit lists in the if state blocks.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Changelog: API Change Include in the "Changed" section of the changelog Changelog: Removal Include in the Removed section of the changelog mod: circuit Related to the core of the `QuantumCircuit` class or the circuit library mod: transpiler Issues and PRs related to Transpiler on hold Can not fix yet Rust This PR or issue is related to Rust code in the repository
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants